home *** CD-ROM | disk | FTP | other *** search
/ GFX Sensations 1 / Graphic Sensations - Volume 1.iso / tools / pc / utility / dos / gifpcx.com / GIFPCX.DOC < prev    next >
Encoding:
Text File  |  1989-12-17  |  19.7 KB  |  543 lines

  1.  
  2.  
  3.  
  4.  
  5.            GIFPCX V3.6 GIF -to- ZSoft PCX Graphics File Translator
  6.           Copyright 1988,1989 by William J. Hinkle CIS [71121,3211]
  7.                                  02 Dec 1989
  8.  
  9.  
  10.            GIF and 'Graphics Interchange Format' are trademarks of
  11.                           CompuServe, Incorporated.
  12.                              an H&R Block Company
  13.  
  14.                             === User's Guide === 
  15.  
  16. The GIFPCX program  was created to allow graphics files created as GIF 
  17. (Graphics Interchange Format) files to be used in various word processors
  18. and desktop publishing systems that use the PCX image format.  PCX images
  19. originated with the ZSoft Corporation's PC-Paintbrush program for the IBM-PC,
  20. but have become something of a de facto standard in the PC world.
  21.  
  22. GIFPCX creates black-and-white PCX image from color or black-and-white GIFs. 
  23. To do this, the program translates the GIF file into a PCX bit-mapped raster 
  24. graphics file.  In the process, GIFPCX converts the GIF image's colors into 
  25. shades of gray, which it tries to reproduce in the black-and-white PCX image.
  26.  
  27. NOTE: GIFPCX DOES NOT CREATE COLOR PCX FILES!
  28.  
  29. There are zillions of GIF files available on CompuServe in the QPICS, GALLERY,
  30. COMART, and CORNER forums, as well in other forums, and from other sources.
  31. Generally they are in color, which GIFPCX changes into grayscale and then
  32. dithers (default) or halftones.
  33.  
  34. The translator is a single file: GIFPCX.EXE.  A quick and dirty example:
  35.  
  36. GIFPCX yergif
  37.  
  38. will convert YERGIF.GIF to YERGIF.PCX in black and white.
  39.  
  40. =========
  41. THE CATCH
  42. =========
  43.  
  44. Note that this program is being released by the author, and is NOT supported
  45. by CompuServe Inc., or ZSoft Corporation, either.
  46.  
  47. It is NOT public domain!
  48.  
  49. This utility program GIFPCX.EXE was written by
  50.  
  51.     William J. Hinkle
  52.  
  53. who retains the copyright.  Copy and use the program freely.  Distribute
  54. it to whomever you want.  But:
  55.  
  56. === Do NOT distribute modified versions.
  57. === Do NOT remove the copyright notice.
  58. === ALWAYS distribute with the documentation.
  59.  
  60. If you feel that this program has been of some utility, please register
  61. by sending $10.00 to:
  62.  
  63. William J. Hinkle
  64. 420 E.Boston Mills Rd.
  65. Hudson, OH 44236-1111
  66.  
  67.  
  68.  
  69. =========
  70. OPERATION
  71. =========
  72.  
  73. First get a GIF image you want to integrate into your document.  These are
  74. usually "paint" or "screen capture" images.  GO PICS on CompuServe will lead
  75. you to a forum with all sorts of information on GIF images; GO QPICS,
  76. GO COMART, GO CORNER and GO GALLERY on CompuServe will lead you to collections
  77. of GIF images that you can download.  Many on-line BBS's have GIF images
  78. available.  You must have the GIF image in a file on disk; the file should
  79. have the standard .GIF file extension (i.e., fname.GIF).
  80.  
  81. To create a .PCX file, type in:
  82.  
  83. GIFPCX fname
  84. or
  85. GIFPCX fname.GIF
  86. or
  87. GIFPCX fname.GIF fname.PCX
  88.  
  89. from the DOS command prompt.  The .GIF extension is assumed if you do not
  90. specify one.  The .PCX extension is assumed whether you specify one or not.
  91. The .PCX file name is made the same as the .GIF if not otherwise specified.
  92. Full DOS pathnames can be specified.  You can specify just a directory
  93. (ending in \) or a drive (ending in :) instead of the second filename; the
  94. PCX file will use the name of the GIF file, with a PCX extension, and be
  95. placed on that path.
  96.  
  97. The .GIF file will be translated to a black-and-white .PCX file.
  98. The .GIF file will not be erased.  You can also specify scaling factors, but
  99. the defaults often work the best (see below).
  100.  
  101. ==================
  102. WILDCARD FILENAMES
  103. ==================
  104. GIFPCX doesn't handle wildcard filenames, like *.GIF.  But you can accomplish
  105. the same thing by using the DOS "FOR" command.  See your DOS manual's section
  106. on Batch Commands for further info.  To convert all of the GIFs in the current
  107. directory to PCX:
  108.  
  109. FOR %f in (*.GIF) do GIFPCX %f
  110.  
  111. ===============
  112. INTERLACED GIFS
  113. ===============
  114. Some GIF files are "interlaced" -- they are specially constructed for on-line
  115. viewing.  GIFPCX will process this type of GIF file without complaint, but
  116. it has to temporarily create a special file while doing so.  If you receive
  117. error messages about interlace processing, check that you have plenty of free
  118. space on your default disk.
  119.  
  120.  
  121.  
  122. ==============
  123. COMPLEAT USAGE
  124. ==============
  125.  
  126. If you invoke GIFPCX from DOS without any other parameters, it will
  127. display the following help message.  This illustrates some of the
  128. other options:
  129.  
  130. -----
  131. GIF-to-PCX Translator: V3.6 ... Copyright 1988,1989 by W.J.Hinkle
  132.  
  133. Usage: GIFPCX fname1 [fname2] [option] [option] ...
  134. where: fname1.GIF ... GIF format input file
  135.        fname2.PCX ... ZSoft PCX file (B&W) (default is fname1.PCX)
  136.  
  137. Command Line Options:
  138.        /v         ... reverse video
  139.        /iN        ... select sub-image N (default is 1)
  140.  
  141.        /cN        ... change contrast by N%
  142.        /bN        ... change brightness by +/-N% (BEFORE contrast %)
  143.        /wN        ... index of color to change into "white"
  144.        /p         ... print pixel histogram data (colors used)
  145.  
  146.        /g         ... equal color weighting for grayscale GIF
  147.        /l         ... linearize colors (ignore color maps)
  148.        /eN        ... error diffused dither, expanding xN (default is 1)
  149.        /dN        ... make dither pattern block NxN
  150.        /hN        ... make halftone pattern block NxN
  151.  
  152. GIFPCX is a translator from CompuServe GIF files to ZSoft PCX
  153. graphics files - Black and White only! - for use in printed documents.
  154.  
  155. The GIF colors are converted to grayscale intensity using the weighting:
  156. Red 30%, Green 59%, Blue 11%.  You can specify that the GIF uses only gray
  157. tones with the /g flag; equal color weighting will then be used.
  158.  
  159. The grayscale is dithered error diffused, by default.  A pattern block
  160. size can be used instead: select with /dN, N=1,2,4 or 8 for pattern dither
  161. or with /hN, N=1,2,3 or 4 for pattern halftone.
  162.  
  163. The /p option will print on-screen a histogram of the colors used in the GIF,
  164. their RGB color components, and their brightness.  You can adjust the overall
  165. brightness with the /bN option (-100 <= N <= +100, in percentage brightness)
  166. and the contrast with the /cN option (N is a percentage multiplier).
  167.  
  168. Eliminate a pesky background color by specifying /wN, where N is the index
  169. number of that color.  All the pixels in that color are turned pure white.
  170.  
  171.  
  172. (followed by copyright and shareware info)
  173.  
  174.  
  175.  
  176. ==========
  177. SUB-IMAGES
  178. ==========
  179.  
  180. If your GIF file contains multiple sub-images, you can specify which one
  181. to extract and translate by specifying the /iN option, where N is the sub-
  182. image number 1,2,3... etc.  Normally, you can ignore this option; the 1st
  183. (or only!) image will be translated.  If there are additional sub-images
  184. beyond the one selected, a warning is issued and they are ignored.
  185.  
  186. ====================
  187. COLORS AND GRAYSCALE
  188. ====================
  189.  
  190. Most GIF files are in color.  GIFPCX transforms the color mapping into
  191. intensity of grayscale using the above mentioned weights.  If you know for
  192. a fact that the GIF uses gray tones only, you can specify the /g option to
  193. use equal color weights.
  194.  
  195. Once in grayscale, the image can be either dithered (the default) or
  196. halftoned.  Normally, you don't have to even think about this, but if you want 
  197. to tweak things, and possibly improve your results, read on...
  198.  
  199. Dithering tries to average the image brightness over a small area of the
  200. image.  The default is to use retain the size of the image in both axes,
  201. and use error-diffused dithering.  You can vary the multiplication factor
  202. by specifying the /eN option with N larger than 1, where N is the size
  203. multiplier.  In other words, the default dithering is equivalent to /e1.
  204. This type of dithering tends to ease problems image artifacts (those weird
  205. "plaid" patterns) if you later have to scale the image.
  206.  
  207. You can often improve your results, at the cost of larger file sizes and 
  208. slower processing, by specifying /e2, /e3, /e4, etc.  The larger the
  209. number after /e, the larger the PCX file and slower the processing -- but the
  210. better the resolution!
  211.  
  212.  
  213.  
  214. If you specify the /dN option (/d1, /d2, /d4, or /d8), the image size is not
  215. multiplied and a patterned dither is used with an NxN dither block.  This can
  216. give smaller PCX files, but not very good visual results.
  217.  
  218. Better than pattern dither is (simulated) halftoning, which replaces each GIF 
  219. pixel with a block of on/off pixels that have a corresponding optical density.  
  220. Halftoning will be done instead of dithering if you specify the /hN option 
  221. (which will halftone with an NxN block).  For example: /h1, /h2, /h3, or /h4.
  222.  
  223. =============
  224. REVERSE VIDEO
  225. =============
  226.  
  227. Normally GIFPCX flips the photometric interpretation of the GIF file colors:
  228. the brightest colors have the fewest pixels in the PCX file.  This is because
  229. GIF files are generally optimized for screen viewing, but word processors will
  230. (eventually) put the image on paper.  However, if you WANT a reverse video
  231. effect, use the /v option switch.
  232.  
  233. ==========================
  234. KILLING THE COLOR MAPPING
  235. ==========================
  236.  
  237. You can override the GIF file's color map by specifying the /l option (that's
  238. an "el", not a "one").  This "linearizes" the color mapping: color indices
  239. will be transformed directly into grayscale without worrying about how
  240. bright the colors really ought to be.  This sometimes gives a more detailed,
  241. though probably less accurate, image.  It may be most useful for charts
  242. and such.
  243.  
  244. =======================
  245. BRIGHTNESS AND CONTRAST
  246. =======================
  247.  
  248. The /bN option can be specified to adjust the brightness the image.  The 
  249. effect is to add N percent of maximum brightness to the image.  The factor N
  250. can range from -100 to +100 percent.  If not specified, no change in the
  251. brightness is made.  For example: /b-25 lowers the brightness by 25%.
  252.  
  253. The /cN option can be specified to adjust the contrast of the image.  The 
  254. effect is to multiply each grayscale intensity value by N%.  The factor N can 
  255. be greater or less than 100.  If not specified, the contrast is left at 100%.  
  256. For example: /c85 give 85% contrast.
  257.  
  258. The contrast adjustment is applied AFTER the brightness adjustment.  The 
  259. histogram option can give you an idea of what kind of adjustments to make to 
  260. the brightness and contrast; see below.
  261.  
  262. NOTE: For many high-color images to print satisfactorily, a rule of thumb is
  263. to add 20 or 30 percent brightness: /b20 to /b30.  Otherwise overlapping
  264. printer dots cause images to appear very dark -- but this varies radically
  265. with the word processor and printer, and even with the state of the printer
  266. ribbon!
  267.  
  268.  
  269.  
  270. ===================
  271. WHITEOUT BACKGROUND
  272. ===================
  273.  
  274. Simple GIFs (as found in QPICS, for example) often have a solid color 
  275. background that will just clutter things up when printed in black-and-white.
  276. You can eliminate that color by specifying its color index as N in the /wN
  277. option.  This will yield a nice clear background in the PCX image.
  278.  
  279. But, how to find out the background color?  Print out the histogram (see 
  280. below) and look for a color that is used FAR more often than the rest.  That 
  281. is probably the background color.  Or simply experiment.
  282.  
  283. ===============
  284. PRINT HISTOGRAM
  285. ===============
  286.  
  287. The /p option causes a histogram to be kept on the distribution of color
  288. indices in the GIF image.  The RGB levels and relative brightness of each
  289. color, as well as the number of occurences of each value, are printed on
  290. the screen when the translation is complete.
  291.  
  292. Here's a technique that is often helpful in improving the resulting PCX image:
  293.  
  294. Translate your GIF file, using the /p option to get a histogram.  You can 
  295. re-direct the histogram printout to a file or the printer with DOS file
  296. redirection, e.g.:
  297.  
  298. GIFPCX YERGIF /p >lpt1
  299.  
  300. If you like the resulting PCX file, you're done!  But if not, take a look at 
  301. the histogram.  See if the lowest brightness actually used in the picture is 
  302. well above 0%.  If so, you might want to adjust the brightness downward.  See 
  303. also if the total range of brightness is well under 100%.  If so, you might 
  304. want to adjust the contrast upward to avoid a washed-out look (especially if 
  305. you adjust the brightness downward).
  306.  
  307.  
  308.  
  309. ========
  310. EXAMPLES
  311. ========
  312.  
  313. 1) Suppose you have a GIF file called "earthm.gif".  You want to create a PCX
  314. file version of this image without worrying about the details.  You can
  315. translate this to a PCX file by typing (at the DOS prompt):
  316.  
  317. GIFPCX earthm
  318.  
  319. and you will see something like:
  320. -----
  321. GIF-to-PCX Translator: V3.6 ... Copyright 1988, 1989 by W.J.Hinkle
  322.  
  323. From GIF 640x350x16 file: earthm.gif
  324.   to PCX 640x350 file: earthm.pcx
  325.   dithered error diffused with +0% brightness, 100% contrast.
  326. -----
  327. Note that both the GIF image resolution and color range are shown:
  328. GIF Width x Height x # of Colors
  329.  
  330. Also shown is the final PCX image resolution:
  331. PCX Width x Height
  332.  
  333.  
  334.  
  335.  
  336. 2) Suppose you have a GIF file called "yikes.gif".  You can translate
  337. this to a PCX file by typing (at the DOS prompt):
  338.  
  339. GIFPCX yikes /h4
  340.  
  341. and you will see something like:
  342. -----
  343. GIF-to-PCX Translator: V3.6 ... Copyright 1988, 1989 by W.J.Hinkle
  344.  
  345. From GIF 156x131x16 file: yikes.gif
  346.   to PCX 624x524 file: yikes.pcx
  347.   halftoned into a 4x4 pixel matrix with +0% brightness, 100% contrast.
  348. -----
  349.  
  350. 3) Suppose you have a black and white clipart GIF file called "barn.gif".
  351. You can translate this to a PCX file by typing (at the DOS prompt):
  352.  
  353. GIFPCX barn
  354.  
  355. and you will see something like:
  356. -----
  357. GIF-to-PCX Translator: V3.6 ... Copyright 1988, 1989 by W.J.Hinkle
  358.  
  359. From GIF 280x280x2 file: barn.gif
  360.   to PCX 280x280 file: barn.pcx
  361. -----
  362.  
  363. Note that no dithering or halftoning information is shown for 2-color (aka
  364. monochrome) GIFs -- they are simply changed into black and white PCX files
  365. without further processing.  This is true for ANY 2-color GIF, even if it
  366. isn't black and white (say, blue and white).
  367.  
  368.  
  369.  
  370. ===========
  371. ERROR CODES
  372. ===========
  373.  
  374. If an error occurs within GIFPCX, it will print an error message and
  375. terminate the program.  You may be left with a partial PCX file on-disk,
  376. so just delete that (or it will be overwritten if you try again).  The
  377. errors messages are in the form:
  378.  
  379. Error #NNNN: Message
  380.  
  381. where the message is pretty generic, and indicates the name of the offending
  382. file, if any.  The error numbers are mostly "standard" DOS errors, and a few
  383. are peculiar to GIFPCX.
  384.  
  385. DOS
  386. Error    Meaning
  387. -----    -------
  388.    0     Cause of error unknown
  389.    1     Invalid DOS function
  390.    2     File not found
  391.    3     Path not found
  392.    4     Too many files opened
  393.    5     Access denied
  394.    6     Invalid handle
  395.    7     Memory control blocks destroyed
  396.    8     Insufficient memory
  397.    9     Invalid memory block address
  398.   10     Invalid environment
  399.   11     Invalid format
  400.   12     Invalid access code
  401.   13     Invalid data
  402.   15     Invalid drive code
  403.   16     Can't remove current directory
  404.   17     Not same device
  405.   18     No more files
  406.   19     Can't write on protected device
  407.   20     Unknown unit
  408.   21     Drive not ready
  409.   22     Unknown command
  410.   23     Data error
  411.   24     Bad request structure length
  412.   25     Seek error
  413.   26     Unknown media type
  414.   27     Sector not found
  415.   28     Printer paper alarm
  416.   29     Write fault
  417.   30     Read fault
  418.   31     General failure
  419.   32     Sharing violation
  420.   33     Lock violation
  421.   34     Invalid disk change, 
  422.   35     FCB unavailable
  423.   36     Sharing buffer overflow
  424.  
  425.  
  426.  
  427. DOS
  428. Error    Meaning
  429. -----    -------
  430.   50     Network request not supported
  431.   51     Remote computer not listening
  432.   52     Duplicate name on network
  433.   53     Network name not found
  434.   54     Network busy
  435.   55     Network device no longer exists
  436.   56     Net BIOS command limit exceeded
  437.   57     Network adaptor hardware error
  438.   58     Incorrect response from network
  439.   59     Unexpected network error
  440.   60     Incompatible remote adaptor
  441.   61     Print queue full
  442.   62     Not enough space for print file
  443.   63     Print file was deleted
  444.   64     Network name was deleted
  445.   65     Access denied
  446.   66     Incorrect network device type
  447.   67     Network name not found
  448.   68     Network name limit exceeded
  449.   69     Net BIOS session limit exceeded
  450.   70     Temporarily paused
  451.   71     Network request not accepted
  452.   72     Print or disk redirection is paused
  453.   80     File exists
  454.   82     Cannot make directory entry
  455.   83     Fail on INT 24
  456.   84     Too many redirections
  457.   85     Duplicate redirection
  458.   86     Invalid password
  459.   87     Invalid parameter
  460.   88     Network device fault
  461.  
  462. GIFPCX
  463. Error    Meaning
  464. ------   -------
  465. 8100     Unknown command line switch
  466. 8101     Can't use enough memory for operation (image too large?)
  467. 8102     Disk is full
  468. 8103     Input file shorter than expected
  469. 8104     Sub-image does not exist
  470. 8105     Ctrl-Break (Ctrl-C) pressed
  471.  
  472. 8200     GIF input file header not as expected
  473. 8201     GIF input file format not as expected
  474. 8202     Unknown GIF format ID
  475. 8203     Error decoding GIF image
  476.  
  477.  
  478.  
  479. ======
  480. HELP!?
  481. ======
  482.  
  483. Should you have any difficulties using this program, you can contact me
  484. (Bill Hinkle) through CompuServe EMAIL to [71121,3211], in the PICS forum,
  485. or at the address on the first page of this document.  General feedback is
  486. welcome, especially on better methods of color reduction, grayscale halftoning
  487. and dithering, and problem GIF files.
  488.  
  489. Thanks to Bob Cancilla [76077,354] for his prototype testing & help on
  490. the original GIF2BIT for Lotus Manuscript.
  491. Thanks to Jeff Lewis [72717,1033] for ideas on halftoning and dithering.
  492. Thanks to Kyle Powell [76044,2215] for his public domain LZW decoder 85GIF.
  493. Thanks to Tom Pfau for his public domain LZW decoder.
  494. Thanks to Floyd & Steinberg for the error diffused dither algorithm.
  495. Thanks to Larry Brennan and Millard Brown for their comments and suggestions.
  496.  
  497. Thanks to the many CIS beta testers and folks who reported problems.
  498.  
  499. =============
  500. REVISION INFO
  501. =============
  502.  
  503. *    Version number    Date        Explanation                                *
  504. *    --------------    ------        --------------------------                *
  505. *        3.4            07 Nov 89    derived from GIF2BIT and GIF2WPG        *
  506. *        3.5            02 Dec 89    improved due to some good advice        *
  507. *        3.6            17 Dec 89    tweaked for B&W GIF Clipart                *
  508.  
  509.          ----------------end-of-author's-documentation---------------
  510.  
  511.                         Software Library Information:
  512.  
  513.                    This disk copy provided as a service of
  514.  
  515.                         The Public (Software) Library
  516.  
  517.          We are not the authors of this program, nor are we associated
  518.          with the author in any way other than as a distributor of the
  519.          program in accordance with the author's terms of distribution.
  520.  
  521.          Please direct shareware payments and specific questions about
  522.          this program to the author of the program, whose name appears
  523.          elsewhere in  this documentation. If you have trouble getting
  524.          in touch with the author,  we will do whatever we can to help
  525.          you with your questions. All programs have been tested and do
  526.          run.  To report problems,  please use the form that is in the
  527.          file PROBLEM.DOC on many of our disks or in other written for-
  528.          mat with screen printouts, if possible.  The P(s)L cannot de-
  529.          bug programs over the telephone.
  530.  
  531.          Disks in the P(s)L are updated monthly, so if you did not get
  532.          this disk  directly from the P(s)L,  you should be aware that
  533.          the files in this set may no  longer be the current versions.
  534.  
  535.          For a copy of the latest monthly software library newsletter
  536.          and a list of the 2,000+ disks in the library, call or write
  537.  
  538.                         The Public (Software) Library
  539.                               P.O.Box 35705
  540.                            Houston, TX 77235-5705
  541.                                (713) 524-6394
  542.  
  543.